﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;
using System.IO;

public partial class Protegidos_Pessoas_DadosPessoa__popup_ppUploadAdvert : PageBase
{
    protected int idPessoa = 0;
    protected int idAdvertencia = 0;
    private const string dbPath = "arq/";

    protected void Page_Load(object sender, EventArgs e)
    {
        IdPrestador = 2;
        IdPatrocinador = 3;

        if (!IsPostBack)
        {
            trResultado.Visible = false;
            EditaParametros();
        }

        if (Request.QueryString["IdPessoa"] != null)
            idPessoa = int.Parse(Request.QueryString["IdPessoa"].ToString());

        if (Request.QueryString["IdAdvertencia"] != null)
            idAdvertencia = int.Parse(Request.QueryString["IdAdvertencia"].ToString());

        if (!IsPostBack)
        {
            if (Request.QueryString["IdAdvertencia"] != null)
                PreencherDados(int.Parse(Request.QueryString["IdAdvertencia"].ToString()));
        }
    }

    #region Eventos
    protected void btnGravar_Click(object sender, EventArgs e)
    {
        try
        {
            BindValidResults();
        }
        catch (Exception ex)
        {
            lblResultado.Text = ex.Message;
        }
    }

    protected void btnFechar_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
    }

    protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        //if (e.Argument == "RebindContrato")
        //{
        //    RadGrid2.MasterTableView.SortExpressions.Clear();
        //    RadGrid2.MasterTableView.GroupByExpressions.Clear();
        //    RadGrid2.MasterTableView.CurrentPageIndex = RadGrid2.MasterTableView.PageCount - 1;
        //    RadGrid2.Rebind();
        //    CarregarDadosContrato();
        //}
    }

    protected void rcbTipoSuspensao_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        if (rcbTipoSuspensao.SelectedValue == "3")
        {
            trDataInicioSuspensao.Visible = true;
            trDataFimSuspensao.Visible = true;
        }
        else
        {
            trDataInicioSuspensao.Visible = false;
            trDataFimSuspensao.Visible = false;
        }
    }
    #endregion

    #region Metodos
    private void BindValidResults()
    {
        if ((RadUpload1.UploadedFiles.Count > 0) || (rcbTipoSuspensao.SelectedValue == "") || (rcbTipoSuspensao.SelectedValue == "1") || (lblArquivo.Text != string.Empty))
        {
            string nameFile = Salvar();

            foreach (UploadedFile validFile in RadUpload1.UploadedFiles)
            {
                string targetFolder = Server.MapPath("~/Arq");
                validFile.SaveAs(Path.Combine(targetFolder, nameFile), true);
            }

            labelNoResults.Visible = false;
            repeaterResults.Visible = true;
            repeaterResults.DataSource = RadUpload1.UploadedFiles;
            repeaterResults.DataBind();
        }
        else
        {
            labelNoResults.Visible = true;
            repeaterResults.Visible = false;
        }

        ExibeResultado();
    }

    private void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
        btnGravar.Visible = !oculta;
    }

    private void ExibeResultado()
    {
        trSeleciona.Visible = false;
        trResultado.Visible = true;
        trMsg.Visible = false;
        btnGravar.Visible = false;

        trTipo.Visible = false;
        trAdvertidoPor.Visible = false;
        trDataAdvertencia.Visible = false;
        trDataInicioSuspensao.Visible = false;
        trDataFimSuspensao.Visible = false;
        trDescricao.Visible = false;
    }

    private void PreencherDados(int _idAdvertencia)
    {
        PessoaAdvertencia advertencia = new PessoaAdvertencia(_idAdvertencia);

        RadComboBoxItem itemTipoSuspensao;
        RadComboBoxItem itemAdvertidoPor;

        itemTipoSuspensao = rcbTipoSuspensao.FindItemByValue(advertencia.TipoSuspensao.IdTipoSuspensao.ToString());
        itemAdvertidoPor = rcbAdvertidoPor.Items.FindItemByValue(advertencia.AdvertidoPor.IdPessoa.ToString());

        rcbTipoSuspensao.SelectedIndex = itemTipoSuspensao.Index;
        rcbAdvertidoPor.SelectedIndex = itemAdvertidoPor.Index;
        rdpDataAdvertencia.SelectedDate = advertencia.DataAdvertencia;

        if (advertencia.TipoSuspensao.IdTipoSuspensao == 3)
        {
            trDataInicioSuspensao.Visible = true;
            trDataFimSuspensao.Visible = true;
        }

        rdpDataInicioSuspensao.SelectedDate = advertencia.DataInicioSuspensao;
        rdpDataFimSuspensao.SelectedDate = advertencia.DataFimSuspensao;
        txtDescricao.Text = advertencia.Obs;

        if (advertencia.Path != null)
        {
            System.IO.FileInfo fileInfo = new FileInfo(advertencia.Path);
            lblArquivo.Text = fileInfo.Name;
        }
        else
        {
            lblArquivo.Text = "";
        }
    }

    private void EditaParametros()
    {
        TipoSuspensao tiposuspensao = new TipoSuspensao();
        rcbTipoSuspensao.DataSource = tiposuspensao.SelectAll();
        rcbTipoSuspensao.DataBind();

        Pessoa pessoa = new Pessoa();
        rcbAdvertidoPor.DataSource = pessoa.SelectPessoaPesquisa("", IdPrestador);
        rcbAdvertidoPor.DataBind();

        // seta o tamanho máximo do arquivo
        TipoDocumentoPessoa tipodocto = new TipoDocumentoPessoa((int)TipoDocumentoPessoa.TipoDocumento.Advertencias_Suspensoes);
        RadUpload1.MaxFileSize = tipodocto.TamanhoArquivo;

        trDataInicioSuspensao.Visible = false;
        trDataFimSuspensao.Visible = false;
    }

    protected string Salvar()
    {
        PessoaAdvertencia advertencia = new PessoaAdvertencia();

        advertencia.IdAdvertencia = idAdvertencia;
        if (rcbTipoSuspensao.SelectedValue != string.Empty)
            advertencia.TipoSuspensao = new TipoSuspensao(int.Parse(rcbTipoSuspensao.SelectedValue));
        advertencia.Pessoa = new Pessoa(idPessoa);
        if (rcbAdvertidoPor.SelectedValue != string.Empty)
            advertencia.AdvertidoPor = new Pessoa(int.Parse(rcbAdvertidoPor.SelectedValue));
        if (rdpDataAdvertencia.SelectedDate != null)
            advertencia.DataAdvertencia = DateTime.Parse(rdpDataAdvertencia.SelectedDate.ToString());
        if (rdpDataInicioSuspensao.SelectedDate != null)
            advertencia.DataInicioSuspensao = DateTime.Parse(rdpDataInicioSuspensao.SelectedDate.ToString());
        if (rdpDataFimSuspensao.SelectedDate != null)
            advertencia.DataFimSuspensao = DateTime.Parse(rdpDataFimSuspensao.SelectedDate.ToString());
        advertencia.Obs = txtDescricao.Text.Trim();
        if ((rcbTipoSuspensao.SelectedValue == "2") || (rcbTipoSuspensao.SelectedValue == "3"))
            advertencia.Path = dbPath;

        advertencia.Salvar();

        FileInfo _fileInfo = new FileInfo(advertencia.Path);

        return _fileInfo.Name;
    }
    #endregion
}
